package com.xiyin.quartz.config;

import com.xiyin.quartz.job.MyJob;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SchedulerConfig {

    @Bean
    public JobDetail myJobDetail() {
        return JobBuilder.newJob(MyJob.class)
                .withIdentity("myJob", "group1")
                .storeDurably(true)
                .build();
    }

    ///**
    // * 创建一个简单触发器
    // *
    // * @return 返回简单触发器对象
    // */
    //@Bean
    //public Trigger myJobTrigger() {
    //    SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
    //            .withIntervalInSeconds(5) // 每隔5秒执行一次
    //            .repeatForever();
    //
    //    return TriggerBuilder.newTrigger()
    //            .forJob(myJobDetail())
    //            .withIdentity("myJobTrigger", "group1")
    //            .withSchedule(scheduleBuilder)
    //            .build();
    //}

    /**
     * 创建一个定时触发器
     *
     * @return 返回定时触发器对象
     */
    @Bean
    public Trigger cronJobTrigger() {
        return TriggerBuilder.newTrigger()
                .forJob(myJobDetail()) // 使用上面定义的JobDetail
                .withIdentity("cronJobTrigger", "group1")
                .withSchedule(CronScheduleBuilder.cronSchedule("0 0/5 * * * ?")) // 每隔5分钟执行一次，这是一个cron表达式示例
                .build();
    }



}
